import { FontOptions } from 'svg2ttf';
import { Metadata } from 'svgicons2svgfont';

type FontExtension = 'svg' | 'ttf' | 'eof' | 'woff' | 'woff2';

interface FontFormat {
    ttf?: FontOptions;
}

interface CssFileOptions {
    isGenerate?: boolean;
    templatePath?: string;

    fontFileBasePath?: string;
}

interface ConverterOptions {
    formDir: string;
    outDir: string;

    fontName?: string;

    fontExts?: FontExtension[];
    fontFormat?: FontFormat;

    cssFileOption?: CssFileOptions;
}

interface ConverterResultModel {
    [fontName: string]: Metadata;
}

interface SVGFontConvertResultModel {
    fontData: string;
    metaMapping: ConverterResultModel;
}

export { ConverterOptions, FontExtension, ConverterResultModel, SVGFontConvertResultModel, CssFileOptions };
